<?php
/**
 * Created by PhpStorm.
 * User: zhangrxiang
 * Date: 2017/1/5
 * Time: 9:11
 */

//array_change_key_case — 返回字符串键名全为小写或大写的数组
//CASE_UPPER 或 CASE_LOWER（默认值）。
//如果输入值（input）不是一个数组，就会抛出一个错误警告（E_WARNING）。
//array array_change_key_case ( array $input [, int $case = CASE_LOWER ] )
/*如果一个数组中的多个键名经过本函数后变成一样的话（例如 "keY" 和 "kEY"），最后一个值将覆盖其它的值。*/
$arr = ['one' => "oneone",'two' => 'twotwo','three' => [
	'oo' => 'oone',
	'tt' => 'ttow'
]];
$arr = array_change_key_case($arr,CASE_UPPER);
var_dump($arr);
$arr = array_change_key_case($arr,CASE_LOWER);
var_dump($arr);

$arr = array_change_value_case($arr,CASE_UPPER);
var_dump($arr);

//array_change_value_case();
function array_change_value_case($input, $case = CASE_LOWER)
{
	$aRet = array();
	if (!is_array($input))
	{
		return $aRet;
	}
	foreach ($input as $key => $value)
	{
		if (is_array($value))
		{
			$aRet[$key] = array_change_value_case($value, $case);
			continue;
		}
		$aRet[$key] = ($case == CASE_UPPER ? strtoupper($value) : strtolower($value));
	}
	return $aRet;
}




// todo?????
function array_change($array,$case=CASE_LOWER,$rec=false,$key_value=0){
	$result = [];
	if (is_array($array)){
		//key
		if($case === CASE_UPPER){
			if($key_value === 0){
				foreach ($array as $key => $val){
					$result[strtoupper($key)] = $val;
					if($rec){
						array_change($val,$case,$rec,$key_value);
					}
				}
			}
		}
	}
	return $result;
}

$arr = ['ONE'=>'one','Two' => ['t' => 't']];
$arr = array_change($arr,CASE_UPPER,true);
var_dump($arr);